# 基础镜像
FROM eclipse-temurin:17-jre
# 维护者信息
LABEL maintainer="hello"

# 构建参数
ARG PROFILES=prod
ARG NACOS_SERVER=47.120.9.38:8848
ARG SERVER_PORT=8080
# 添加 Nacos 命名空间参数
ARG NACOS_CONFIG_NAMESPACE=prod 
ARG NACOS_DISCOVERY_NAMESPACE=prod
ARG APP_NAME=hello-modules-data
ARG JAR_FILE=./jar/hello-modules-data.jar
ARG WORK_DIR=/home/hello

# 环境变量
ENV PROFILES=${PROFILES}
ENV NACOS_SERVER=${NACOS_SERVER}
# 将命名空间参数设置到环境变量
ENV NACOS_CONFIG_NAMESPACE=${NACOS_CONFIG_NAMESPACE}
ENV NACOS_DISCOVERY_NAMESPACE=${NACOS_DISCOVERY_NAMESPACE}
ENV SERVER_PORT=${SERVER_PORT}
ENV APP_NAME=${APP_NAME}
ENV JAR_FILE=${JAR_FILE}
ENV APP_HOME=${WORK_DIR}

# 挂载目录
VOLUME ${APP_HOME}
# 创建目录
RUN mkdir -p ${APP_HOME}
# 指定路径
WORKDIR ${APP_HOME}
# 复制jar文件到路径
COPY ${JAR_FILE} ${APP_HOME}/app.jar
# 暴露端口
EXPOSE ${SERVER_PORT}
# 启动数据服务
ENTRYPOINT java \
           -Dspring.profiles.active=${PROFILES} \
           -Dspring.cloud.nacos.discovery.server-addr=${NACOS_SERVER} \
           -Dspring.cloud.nacos.config.server-addr=${NACOS_SERVER} \
           -Dspring.cloud.nacos.config.namespace=${NACOS_CONFIG_NAMESPACE} \
           -Dspring.cloud.nacos.discovery.namespace=${NACOS_DISCOVERY_NAMESPACE} \
           -Dserver.port=${SERVER_PORT} \
           -jar app.jar